using System;
using System.Collections.ObjectModel;
using System.Text;

namespace Schemata.Core
{
    /// <summary>
    /// Represents a table key.
    /// </summary>
    public class TableKeySchema
    {
        private string _name;
        private TableSchema _primaryKeyTable;
        private Collection<ColumnSchema> _foreignKeyMemberColumns = new Collection<ColumnSchema>();
        
        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>The name.</value>
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        
        /// <summary>
        /// Gets or sets the primary key table.
        /// </summary>
        /// <value>The primary key table.</value>
        public TableSchema PrimaryKeyTable
        {
            get { return _primaryKeyTable; }
            set { _primaryKeyTable = value; }
        }

        /// <summary>
        /// Gets the foreign key member columns.
        /// </summary>
        /// <value>The foreign key member columns.</value>
        public Collection<ColumnSchema> ForeignKeyMemberColumns
        {
            get { return _foreignKeyMemberColumns; }
        }
    }
}
